Skip to content

Conversation

@danielibarrola
Copy link

Description

This pull request introduces the ability to bisect on a specific job within a GitHub Actions workflow, rather than relying solely on the overall workflow conclusion. This is particularly useful for complex workflows where only one specific job represents the regression being tracked.

Key Changes

  • CLI Enhancement: Added a new --job optional argument to the culprit-finder command.
  • Bisection Logic: Updated CulpritFinder to fetch and inspect individual job results using the GitHub CLI when the --job parameter is provided.
  • Job Name Mapping: Implemented logic to handle job name formatting, including support for nested jobs when using a culprit finder workflow.
  • GitHub Client Updates: Added get_run and get_run_jobs methods to the GithubClient to retrieve detailed job information via gh run view.
  • Documentation: Updated the README.md with the new argument and an updated usage example.

Usage Example

culprit-finder \
  --repo owner/repo \
  --start <GOOD_SHA> \
  --end <BAD_SHA> \
  --workflow ci.yml \
  --job unit-tests

Testing

  • Added unit tests in test_culprit_finder.py covering:
    • Successful bisection using a specific job name.
    • Proper job name matching with and without caller workflows.
    • Error handling for missing job names.
  • Verified CLI argument parsing and logging updates.

@danielibarrola danielibarrola force-pushed the feature/culprit-finder-bisect-on-jobs branch from 89ca03e to 6f3afc0 Compare January 7, 2026 18:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant